package com.ctshk.rpc.air.req;

import com.ctshk.common.model.PageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalTime;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value="AirProductListReq对象", description="机票产品ListReq")
public class AirProductListReq extends PageReq implements Serializable {

    private static final long serialVersionUID = 6481301409371911363L;

    @ApiModelProperty(value = "产品Id集合")
    private List<Long> productIds;

    @ApiModelProperty(value = "航空公司名称")
    private String companyName;

    @ApiModelProperty(value = "航空公司Id")
    private Long companyId;

    @ApiModelProperty(value = "航班号")
    private String flightNumber;

    @ApiModelProperty(value = "出发城市id")
    private Long depCityId;

    @ApiModelProperty(value = "到达城市id")
    private Long arrCityId;

    @ApiModelProperty(value = "起飞机场Id")
    private String depAirportId;

    @ApiModelProperty(value = "到达机场Id")
    private String arrAirportId;

    @ApiModelProperty(value = "起飞时间段")
    private FlightTime depTime;

    @ApiModelProperty(value = "到达时间段")
    private FlightTime arrTime;

    @ApiModelProperty(value = "船舱等级類型id(主数据获取)")
    private Long cabinClass;

    @ApiModelProperty(value = "船舱等级類型名称)")
    private String cabinName;

    @ApiModelProperty(value = "供应商id(信德船票)")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称(信德船票)")
    private String supplierName;

    @ApiModelProperty(value = "产品编号,支持模糊查询")
    private  String code;

    @ApiModelProperty(value = "打包状态（1：允许打包 2：不允许打包 3：只限打包）")
    private Integer packStatus;

    @ApiModelProperty(value = "审批状态（1 待提交，2 待审批，3 审批中，4 审批不通过，5 审批通过）")
    private Integer approvalStatus;

    @ApiModelProperty(value = "售卖状态（0 无效，1 有效）当审批状态为通过时才会有售卖状态1")
    private Integer sellStatus;

    @ApiModelProperty(value = "来源(1 手动，2 api)")
    private Integer source;

    @ApiModelProperty(value = "是否推荐 （0不推荐 1推荐）")
    private Integer recommendStatus;



    @Data
    @ApiModel(value = "航班飞行时间区间")
    public static class  FlightTime implements Serializable {
        private static final long serialVersionUID = 8185288550367584368L;
        private LocalTime star;
        private LocalTime end;

    }

}
